1. Technical Field
The present disclosure generally relates to a cloud computing system. More specifically, the present disclosure relates to a method, apparatus, and computer program product for performing remote debugging within a cloud system.
2. Description of the Related Art
In a cloud computing environment, an application is often executed via multiple distributed runtimes. For example, an application may have a servlet-based web user interface (Web UI), a java-based business logic processing component, and a database mapping layer. Further, each component of the application might also be distributed and deployed on many different nodes. However, such a distribution of application documents makes it very difficult to debug the application and determine problems.
The prior art already provides solutions for debugging in a distributed system, such as, a remote debugger connected to multiple nodes in a distributed system or a debugging service for a distributed system that is located by debugging a service registry. However, these solutions have several restrictions and limitations. For example, these solutions cannot be applied to a large-scale production distributed system such as a cloud system. Additionally, these solutions also cannot easily predict which nodes it is desirable to route a debug request to. Further still, it is impossible to connect a debugger to all nodes in a large-scale production distributed system. While a debugging service with a registry locator can resolve this technical problem to a certain extent, it is still difficult for such solution to effectively perform a debug. For example, in a live production environment, while attempting debugging at a node a great amount of other request processes will likely exist. Performing a debugging in a live environment may hang these requests and/or make the debugging harder to execute.